iT邦幫忙

2023 iThome 鐵人賽

DAY 27
1
自我挑戰組

NodeJS with MongoDB專案開發系列 第 27

day 27noed.js with mongo db專案開發

  • 分享至 

  • xImage
  •  

租車系統

現代人買房子就非常不容易了,買車更是負資產,因此租車的廠商就出現了,如果我是租車的業者的話,我應該如何管理我公司名下租出去的車子,所以寫一個租車系統node.js with mongo db就顯得相當重要了
如果你想將MongoDB集成到你的Node.js租車系統中,你可以使用Mongoose,它是一個流行的MongoDB ODM(Object Data Modeling)庫。以下是如何將MongoDB集成到你的應用程序中:

首先,我已經安裝了MongoDB,然後安裝Mongoose庫:

npm install mongoose

接下來,我可以修改我的Node.js應用程序來使用MongoDB作為數據存儲。

const express = require('express');
const bodyParser = require('body-parser');
const mongoose = require('mongoose');
const app = express();
const PORT = 3000;

app.use(bodyParser.json());

// 連接到MongoDB數據庫
mongoose.connect('mongodb://localhost/rental_system', { useNewUrlParser: true, useUnifiedTopology: true });
const db = mongoose.connection;

db.on('error', (error) => console.error('連接到數據庫失敗:', error));
db.once('open', () => console.log('成功連接到數據庫'));

// 定義車輛模型
const carSchema = new mongoose.Schema({
  brand: String,
  model: String,
  year: Number
});

const Car = mongoose.model('Car', carSchema);

// GET請求 - 獲取所有車輛
app.get('/cars', async (req, res) => {
  try {
    const cars = await Car.find();
    res.json(cars);
  } catch (error) {
    res.status(500).json({ error: error.message });
  }
});

// POST請求 - 創建新車輛
app.post('/cars', async (req, res) => {
  const { brand, model, year } = req.body;
  const newCar = new Car({ brand, model, year });
  try {
    const savedCar = await newCar.save();
    res.status(201).json(savedCar);
  } catch (error) {
    res.status(400).json({ error: error.message });
  }
});

// 啟動伺服器
app.listen(PORT, () => {
  console.log(`Server is running on port ${PORT}`);
});

要確保MongoDB伺服器正在運行,並且數據庫rental_system已經創建,或者我可以根據需要的設定MongoDB連接字串。
以下是對上述的Node.js租車系統程式的解釋:

  1. 引入所需的模組:

    • 我首先引入了必要的Node.js模組,包括express(用於建立Web伺服器)、body-parser(用於解析HTTP請求的主體內容),以及mongoose(用於連接和操作MongoDB數據庫)。
  2. 創建Express應用程序和設定端口:

    • 我建立了一個Express應用程序,然後設定伺服器運行的端口為3000。
  3. 連接到MongoDB數據庫:

    • 使用Mongoose,我嘗試連接到本地的MongoDB數據庫。我還設置了連接的錯誤和成功處理程序,以處理連接狀態。
  4. 定義車輛模型:

    • 我定義了一個車輛模型(Car),這個模型基於MongoDB的集合,並具有brand(品牌)、model(型號)和year(年份)屬性。
  5. 處理GET請求以獲取所有車輛:

    • 這個路由處理GET請求,它從MongoDB數據庫中檢索所有車輛的資訊,並將其以JSON格式回傳。錯誤時,它會返回500狀態碼和錯誤訊息。
  6. 處理POST請求以創建新車輛:

    • 這個路由處理POST請求,它從請求主體中提取brand(品牌)、model(型號)和year(年份),然後使用模型來創建新的車輛文檔。如果成功,它會返回201狀態碼和創建的車輛記錄,否則,它會返回400狀態碼和錯誤訊息。
  7. 啟動伺服器:

    • 最後,我啟動Express伺服器,讓它開始在指定的端口(在這個示例中是3000)上運行。

這個程式碼示例演示了如何使用Node.js和Express建立一個簡單的租車系統API,並將車輛資訊存儲在MongoDB數據庫中。


上一篇
day 26 node.js with mongo db專案開發
下一篇
day 28 node.js with mongo db專案開發
系列文
NodeJS with MongoDB專案開發30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

1 則留言

0
阿瑜
iT邦研究生 3 級 ‧ 2023-10-12 23:38:56

這文章系列 涵蓋各個主題
在一日內 解決這主題的基礎操作

我要留言

立即登入留言